package day02;

// 替换空格

public class Main1 {
    public String replaceSpace(StringBuffer str) {
        // 计算空格个数（为了计算新字符串的长度）
        int space = 0;
        for(int i=0; i<str.length(); i++) {
            if(str.charAt(i) == ' ') {
                space++;
            }
        }

        // 计算字符串长度以及最末指针
        int new_length = str.length() + 2*space;
        int old_index = str.length()-1;
        int new_index = new_length - 1;

        // 设定新的字符串长度
        str.setLength(new_length);

        // 进行循环替换(合法性判断)
        while(new_index>=0 && old_index>=0) {
            if(str.charAt(old_index) == ' ') {
                // new_index:先用后减
                str.setCharAt(new_index--,'0');
                str.setCharAt(new_index--,'2');
                str.setCharAt(new_index--,'%');
                old_index--;
            } else {
                // 直接进行赋值替换就行
                str.setCharAt(new_index,str.charAt(old_index));
                new_index--;
                old_index--;
            }
        }
        return str.toString();
    }
}

